#include "test.h"

int main() {
	uint32_t a, b, c, d;

	LOAD_VECTOR_U(12,
	// 0001_0010_0011_0100_0101_0110_0111_1000
		       	0x12345678, 
	// 1001_1010_1011_1100_1101_1110_1111_0000
			0x9ABCDEF0, 
	// 0000_1111_1110_1101_1100_1011_1010_1001
			0x0FEDCBA9,
	// 1000_0111_0110_0101_0100_0011_0010_0001
		       	0x87654321);
	LOAD_VECTOR_U(13,
	// 0000_1111_1110_1101_1100_1011_1010_1001
			0x0FEDCBA9,
	// 1000_0111_0110_0101_0100_0011_0010_0001
			0x87654321,
	// 0001_0010_0011_0100_0101_0110_0111_1000
			0x12345678,
	// 1001_1010_1011_1100_1101_1110_1111_0000
			0x9ABCDEF0);
	LOAD_VECTOR_U(14,
	// 1110_0100_1100_1001_0101_1010_0110_0001
			0xE4C95A61,
	// 0001_0110_1010_0101_1001_1100_0100_1110
			0x16A59C4E,
	// 1110_0100_1100_1001_0101_1010_0110_0001
			0xE4C95A61,
	// 0001_0110_1010_0101_1001_1100_0100_1110
			0x16A59C4E);

	asm("vsel 15, 12, 13, 14");

	STORE_VECTOR_U(15, a, b, c, d);

	return !(
	// 0001_0110_1111_1101_0100_1110_0011_1001
			a == 0x16FD4E39 &&
	// 1001_1110_0111_1101_0100_0010_1011_0000 
			b == 0x8E3D42B0 &&
	// 1110_1001_0000_0010_1011_0001_1100_0110
			c == 0x0B24D3E8 &&
	// 0110_0001_1000_0010_1011_1101_0100_1111
			d == 0x93E4DF61);
}
